import fetch from 'axios'
import q from 'querystring'
import Vue from 'vue'
// import store from '@/store'
// 判断是否为开发环境还是生产环境
// if (process.env.NODE_ENV === 'development') {
//     var commonUrl = 'api'
// }
// 目前未做关于production的环境配置 暂且使用dev
var commonUrl = '/manager'

/**
 * api请求
 * @param {string} url     请求地址
 * @param {string} method  请求方法
 * @param {string} baseURL 默认域名地址
 * @param {object} params  请求参数（GET）
 * @param {object} data    请求参数（非GET）
 */
// 超时时间
fetch.defaults.timeout = 5000
// 返回失败拦截
fetch.interceptors.response.use(
  response => {
    return response
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 400:
          // 返回 400 清除token信息并跳转到登录页面
          Vue.prototype.delCookie('x-mars-token')
      }
    }
    return Promise.reject(error.response.data) // 返回接口返回的错误信息
  })
const sendFetch = ({ url, method, baseURL, params, data }) => {
  const conf = {
    url,
    method,
    baseURL: baseURL || commonUrl
  }
  const _conf = {
    headers: {
    }
  }
  if (method.toUpperCase() === 'GET' || params) {
    _conf.params = params
  } else {
    _conf.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    // 对data数据进行封装拼接成字符串传给java 否则用json传输过去后端无法接受参数
    _conf.data = q.stringify(data)
  }
  const req = Object.assign(conf, _conf)
  //   const res = await fetch(req)
  return fetch(req)
}
export {
  sendFetch,
  fetch
}
